De l’assurance qualité à l’assignation taxonomique
2025-10-21
Note
Le signal renvoyé par le laser est traduit en chromatographe pour chaque amplicon séquencé.
Source: LabXchange.org
Important
Le score est basé sur:
Les sortie du séquenceur Illumina
Exemple de nomenclature de fichier de sortie du séquenceur Illumina: sample1_1_L001_R1_001.fastq.gz
| Signification | Exemple | |
|---|---|---|
| sample1 | Identifiant de l’échantillon | sample1, sample2 |
| _1 | Numéro de réplicat | 1, 2, 3… |
| L001 | Numéro de ligne / lane: | L001-L008 |
| R1/R2 | Direction de lecture | R1=avant, R2=arrière |
| 001 | Segment de fichier | 001, 002… |
Note
Contient plusieurs lignes dont un ensemble de 4 lignes correspond à un amplicon.
system.file(package="ShortRead", "extdata/E-MTAB-1147/ERR127302_1_subset.fastq.gz") |>
gzfile() |>
readLines(n = 12) [1] "@ERR127302.8493430 HWI-EAS350_0441:1:34:16191:2123#0/1"
[2] "GTCTGCTGTATCTGTGTCGGCTGTCTCGCGGGACATGAAGTCAATGAAGGCCTGGAATGTCACTACCCCCAG"
[3] "+"
[4] "HHHHHHHHHHHHHHHHHHHHEBDBB?B:BBGG<DDAA?AABFEFBDBD@DDECEE3>:?;@@@>?=BAB?##"
[5] "@ERR127302.21406531 HWI-EAS350_0441:1:88:9330:2587#0/1"
[6] "CTAGGGCAATCTTTGCAGCAATGAATGCCAATGGGTAGCCAGTGGCTTTTGAGGCCAGAGCAGACCTTCGGG"
[7] "+"
[8] "IIIIHIIIGIIIIIIIHIIIIEGBGHIIIIHGIIHIIIIIIIHIIIHIIIIIGIIIEGIIGBGE@DDGGGIG"
[9] "@ERR127302.22173106 HWI-EAS350_0441:1:91:10434:14757#0/1"
[10] "TGGGCTGTTCCTTCTCACTGTGGCCTGACTAAAACCCAGTGGCATTAAGAAAGAGTCACGTTTCCCAAGTCT"
[11] "+"
[12] "GGHBHGBGGGHHHHDHHHHHHHHHFGHHHHHHHHHHHHHHHHHHHHHGHFHHHHHHHHHHHHHH8AGDGGG>"
system.file(package="ShortRead", "extdata/E-MTAB-1147/ERR127302_1_subset.fastq.gz") |>
gzfile() |>
readLines(n = 4)[1] "@ERR127302.8493430 HWI-EAS350_0441:1:34:16191:2123#0/1"
[2] "GTCTGCTGTATCTGTGTCGGCTGTCTCGCGGGACATGAAGTCAATGAAGGCCTGGAATGTCACTACCCCCAG"
[3] "+"
[4] "HHHHHHHHHHHHHHHHHHHHEBDBB?B:BBGG<DDAA?AABFEFBDBD@DDECEE3>:?;@@@>?=BAB?##"
@)+)Décomposition de l’identifiant
@SH00321:6:BWR98207-2813:1:1101:1065:1015 1:N:0:AACCATAGAA+GGCGAGATGG
Exemple de chaine de caractères donnant le score de qualité (1 caractère par nucléotide): GGGGGGGGGGGGGGGGGGGGGGGG9GG-G9G9G9GGGG
| Caractère ASCII | Score Phred | Taux d’erreur | Précision |
|---|---|---|---|
G |
38 | 0,016% | 99,984% |
9 |
24 | 0,40% | 99,60% |
- |
12 | 6,31% | 93,69% |
Tip
Règle générale : Q30 ou plus = haute qualité (99,9% de précision)
Les scores de qualité utilisent l’encodage ASCII.
Quality encoding: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI
| | | | |
Quality score: 0........10........20........30........40
Avec R, comment convertir l’encodage ASCII en score de Phred et en probabilité d’obtenir une erreur (précision)?
# Convertir la chaîne de qualité en scores Phred
quality_string <- "GGGGGGG99GG-GGG"
quality_scores <- as.integer(charToRaw(quality_string)) - 33
# Afficher la correspondance
data.frame(
Caractere = strsplit(quality_string, "")[[1]],
Score_Phred = quality_scores,
Precision = paste0(round((10^(-quality_scores/10)) * 100, 2), "%")
) Caractere Score_Phred Precision
1 G 38 0.02%
2 G 38 0.02%
3 G 38 0.02%
4 G 38 0.02%
5 G 38 0.02%
6 G 38 0.02%
7 G 38 0.02%
8 9 24 0.4%
9 9 24 0.4%
10 G 38 0.02%
11 G 38 0.02%
12 - 12 6.31%
13 G 38 0.02%
14 G 38 0.02%
15 G 38 0.02%
[1] 20000
# Extraire les amplicons
sequences <- ShortRead::sread(fq)
# Extraire les identifiants
ids <- ShortRead::id(fq)
# Extraire les scores de qualité
qualities <- Biostrings::quality(fq)
# Premier identifiant et séquence
ids[1]BStringSet object of length 1:
width seq
[1] 53 ERR127302.8493430 HWI-EAS350_0441:1:34:16191:2123#0/1
DNAStringSet object of length 1:
width seq
[1] 72 GTCTGCTGTATCTGTGTCGGCTGTCTCGCGGGAC...GTCAATGAAGGCCTGGAATGTCACTACCCCCAG
Min. 1st Qu. Median Mean 3rd Qu. Max.
72 72 72 72 72 72
# Distribution des scores de qualité
qual_matrix <- as(qualities, "matrix")
mean_quality <- rowMeans(qual_matrix)
summary(mean_quality) Min. 1st Qu. Median Mean 3rd Qu. Max.
2.00 33.53 37.35 34.84 38.85 39.99
A C G T
[1,] 0.1944444 0.2638889 0.2916667 0.2500000
[2,] 0.2361111 0.2222222 0.3194444 0.2222222
[3,] 0.2361111 0.2638889 0.2222222 0.2777778
[4,] 0.2500000 0.2638889 0.1666667 0.3194444
RqcNote
Exercice simple: Utilisez le code R que nous venons de voir pour analyser vos propres fichiers FASTQ
data/RqcTip
Si vous n’avez pas de données, vous pouvez télécharger l’exemple ici. Ce sont 10 échantillons de métabarcoding mitofish-12S
10:00
Hakimzadeh et al, 2024
cut, sort, uniq etc. qui manipulent des chaînes de caractères ou des nombresVue d’ensemble du pipeline de métabarcoding
SampleID_*_R1_001.fastq.gzPour chaque lecture fusionnée:
Télécharger BARQUE en cliquant sur le lien
Ou en rendant à l’adresse suivante: https://github.com/enormandeau/barque
fastq.gz avec la bonne nomenclature dans le dossier 04_data02_info/primers.csv02_info/barque_config.shTip
Si vous voulez réutiliser la configuration du pipeline pour d’autres fois, c’est une bonne pratique de dupliquer le fichier et de le sauvegarder sous un autre nom.
04_dataOn peut faire tout de suite l’étape 1 avec vos données.
Tip
Si vous avez pas de données, vous pouvez télécharger celles fournies par Étienne Normandeau, en cliquant ici. Ce sont 10 échantillons de métabarcoding mitofish-12S, chacun.
Aller chercher la base de données NCBI pour les primers COI
BARQUE requière plusieurs programmes qui ne sont pas tous compatibles avec l’environnement Windows
Hakimzadeh et al, 2024
@Soroosh Nazem
–
Comment le séquencage est effectué?